Databases may be implemented in variety of ways. For example, a database may be implemented as a relational database in which data is organized based on relationships between the various pieces of data. Of course, a database may be implemented in other ways, such as a hierarchical database, an object oriented database, etc.
Software applications may be written to access one or more databases. Each software application may include commands written in a format that is specific to a particular database. For example, each software application may be written specifically for the databases that the software application will be accessing. When a system migrates from a first type of database (e.g., a relational database) to a second type of database (e.g., a non-relational database), the software applications that wrote to the first type of database must be rewritten to access the second type of database. Rewriting multiple software applications may be time-consuming and/or expensive.